#ifndef IMAGE_H
#define IMAGE_H

class Image
{
public:

	Image()
		: texture(0), ID(0), pos_x(0), pos_y(0), offsetx(0), offsety(0)
	{
	}

	Image(const Image& cSource);
	Image& operator=(const Image& cSource);

	~Image();

	GLuint getTexture() { return texture; }
	void setTexture(GLuint t) { glDeleteTextures(1, &texture);  texture = t; }

	int getID() { return ID; }
	void setID(int i) { ID = i; }

	GLfloat getPosX() { return pos_x; } 
	void setPosX(GLfloat x) { pos_x = x; } 
	GLfloat getPosY() { return pos_y; }
	void setPosY(GLfloat y) { pos_y = y; } 

	GLfloat getOffsetX() { return offsetx; }
	void setOffsetX(GLfloat offx) { offsetx = offx; }
	GLfloat getOffsetY() { return offsety; }
	void setOffsetY(GLfloat offy) { offsety = offy; }

	GLfloat getWidth() { return width; }
	void setWidth(GLfloat w) { width = w; }
	GLfloat getHeight() { return height; }
	void setHeight(GLfloat h) { height = h; }

	bool getIsActive() { return isActive; }
	void setIsActive(bool active) { isActive = active; }

	std::string getFilename() { return filename; }
	void setFilename(std::string nameImage) { filename = nameImage; }


private:
	GLuint texture;
	int ID;
	GLfloat width, height;
	GLfloat pos_x, pos_y, offsetx, offsety; 
	std::string filename;
	bool isActive;
};

#endif